home *** CD-ROM | disk | FTP | other *** search
- /*
- * FILES script -- complements the new file functions.
- * Written by Jeremy Nelson -- EPIC project
- *
- * These aliases are not anywhere near as fast as /exec'ing the
- * c programs, but they are here to illustrate the usage of the fns.
- */
-
- /* dump a file out to the screen w/o using /exec */
- alias cat {
- @ fd = open($0 R)
- while (!eof($fd)) { echo $read($fd) }
- @ close($fd)
- }
-
- /* Search for a string in a group of files */
- /* This is, of course, case insensitive */
- alias grep {
- for x in ($1-) {
- @ fd = open($x R)
- while (!eof($fd)) {
- @ line = read($fd)
- if (match(*$0* $line))
- {echo $x: $line}
- }
- @close($fd)
- }
- }
-
- /* Write a line to a file w/o using the logging features */
- alias log_it {
- @ fd = open($0 W)
- @ write($fd $1-)
- @ close($fd)
- }
-
- #
- # Call as /exclude filename pattern
- #
- alias exclude {
- @ :reg = regcomp($1-)
- @ :rd = open($0 R)
- @ :wd = open($0.new W)
-
- @ line = read($rd)
- do
- {
- if (regexec($reg $line)) {
- @ write($wd $line)
- }
- @ line = read($rd)
- } while (!eof($rd))
-
- @ close($rd)
- @ close($wd)
- @ regfree($reg)
-
- @ unlink($0)
- @ rename($0.new $0)
- }
-
-